<?	
	/* Se asegura que el archivo es incluido por el index */
	defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
		$this->oTmpObject = new Libro_frm( $this );
	
	class Libro_frm extends Frm
	{
	function setValue ( $ncLibro )
		{
			$cSql = "SELECT  ncLibro, bImagen, cdLibro, nEdicion, nqTirada, cPalabrasClave, cSubserie, cISBN17, cEAN, cSubtitulo, dPublicacion, nAncho, nLargo, nPeso, dImpresion, nqPaginas,  nAlto, nqGramosInterior, nqGramosTapa, bDominioPublico, cISBN13
				FROM btLibro
				WHERE ncLibro = '$ncLibro' ";
			$aLibro = $this->oDatabase->getArray($cSql);	
			$this->setFieldsArray ( $aLibro );
			
			$cISBN = $aLibro[cISBN17] ?  $aLibro[cISBN17]: $aLibro[cISBN13];
			$aISBN = explode ('-', $cISBN);
			if ( $aISBN[0] == 978 && ($aISBN[1] == 987 || $aISBN[1] == 950 ) ) $cSello = $aISBN[2];
			if ( $aISBN[0] == 987 || $aISBN[0] == 950 ) $cSello = $aISBN[1];
			$cSello =  trim($cSello);
			$cArchivo = str_replace('-', '', $cISBN) . ".jpg";
			if ( ! file_exists( PATH_FILES . "imagenes_libro/$cSello/$cArchivo" ) ) $cArchivo = '';
			$this->aFields['cArchivo']->setDestinationPath( "files/imagenes_libro/$cSello/");
			$this->aFields['cArchivo']->setDefaultImage($cArchivo);
			$this->aFields['cArchivo']->setValue($cArchivo);
		}
	function Libro_frm( &$oModule )
		{
			$this->Frm( $oModule );
			//Crea los Objetos de los campos de edicion
			$this->aFields['ncLibro']					= new Input( "Codigo", "ncLibro", '', false, true   );
			//$this->aFields['ncTipoContenido']	= new InputList( "Contenido" ,"ncTipoContenido" );
			$this->aFields['ncTipoObra']	= new InputList( "Tipo de obra" ,"ncTipoObra" );
			$this->aFields['ncDisponibilidad']	= new InputList( "Disponibilidad" ,"ncDisponibilidad" );
			//Disponibilidad Publico TipoPapel TipoEncuadernacion TipoSoporte
			$this->aFields['cISBN17']							= new InputText( "ISBN" , "cISBN17" );
			$this->aFields['cdLibro']					= new InputText( "Titulo", "cdLibro" );
			$this->aFields['cSubtitulo']				= new InputText( "Subtitulo", "cSubtitulo" );
			$this->aFields['dPublicacion']			= new InputDate( "Publicacion", "dPublicacion" );
			$this->aFields['dImpresion']				= new InputDate( "Impresion", "dImpresion" );
			$this->aFields['nEdicion']					= new InputNumber( "Nro de edicion", "nEdicion" );
			$this->aFields['cPalabrasClave']		= new InputText( "Palabras clave", "cPalabrasClave" );
			$this->aFields['nqTirada']				= new InputNumber( "Tirada", "nqTirada" );
			//$this->aFields['aIdiomas']					= new InputCheck( "Idiomas" );
			$this->aFields['fiPrecio']						= new InputNumber( "Precio", "fiPrecio" );
			$this->aFields['nqPaginas']					= new InputNumber( "Cantidad de paginas", "nqPaginas" );
			$this->aFields['nAlto']							= new InputNumber( "Alto", "nAlto" );
			$this->aFields['nAncho']						= new InputNumber( "Ancho", "nAncho" );
			$this->aFields['nLargo']						= new InputNumber( "Largo", "nLargo" );
			$this->aFields['nPeso']						= new InputNumber( "Peso", "nPeso" );
			if ( $this->aFields['ncLibro']->getValue() ) 
			{
				$this->aFields['cArchivo']		= new InputPhoto( "Archivo", "cArchivo", '', 240, 360,  "files/imagenes_libro/");			
			}
		}	
	function initializeForm()
		{
			// Si viene el Ubicacion hace el retrieve
				if ( $this->isRetrievable() && $this->aFields['ncLibro']->getValue() )
				{
					$this->setValue( $this->aFields['ncLibro']->getValue() );
				}
			// Configura el Titulo
				$this->setLabel( "Libros" );	
			return true;
		}
	function initializeField( $cField , &$oField )
		{			
			switch ( $cField )
			{
					case 'ncTipoContenido':
						$cSql = "SELECT ncTipoContenido, cdTipoContenido FROM bcTipoContenido";
						$oField->setMatrix($this->oDatabase->getMatrix($cSql));
					break;
					case 'ncTipoObra':
						$cSql = "SELECT ncTipoObra, cdTipoObra FROM bcTipoObra";
						$oField->setMatrix($this->oDatabase->getMatrix($cSql));
					break;
					case 'ncDisponibilidad':
						$cSql = "SELECT ncDisponibilidad, cdDisponibilidad FROM bcDisponibilidad";
						$oField->setMatrix($this->oDatabase->getMatrix($cSql));
					break;
					case 'cdLibro':
						$oField->setMandatory($this->isMandatory());
					break;
					case 'cPalabrasClave':
						$oField->setLength(1024);
						$oField->setWidth(400);
					break;
			case 'cArchivo':
				$oField->setForm($this);
				$oField->setCoeficiente(1.05);
				$oField->setPopup(false);
				$oField->setBuscar(true);
				$oField->setMandatory($this->isMandatory());
			break;					
			case 'aIdiomas':
					if ($this->aFields['ncLibro']->getValue()  )
					{
						$cSql = "SELECT Par.ncIdioma, Par.cdIdioma, Tab.ncLibro
											FROM bcIdioma as Par
											LEFT JOIN btLibroIdioma as Tab
													ON Tab.ncIdioma = Par.ncIdioma
													AND Tab.ncLibro = " . $this->aFields['ncLibro']->getValue()  . "
											ORDER BY Par.cdIdioma";
					} else
					{
						$cSql = "SELECT ncIdioma, cdIdioma
											FROM bcIdioma
											ORDER BY cdIdioma";
					}
					$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
					$oField->setMultiple( true );
				break;
			}
 		}
	}
?>